package com.dfe.backend.common.constant;

import cn.hutool.core.util.StrUtil;

/**
 * 【描述】：设备类型
 *
 * @author LiChang
 * @since 2025-9-18 10:14
 */
public enum DeviceEnum {

    // 设备类型
    RPE("RPE", "保护装置/保测一体装置"),
    MDU("MDU", "测控装置"),
    ASD("ASD", "安全自动装置"),
    PTB("PTB", "电压并列装置"),
    EFF("EFF", "小电流接地选线装置"),
    OPB("OPB", "操作继电器箱"),
    FRE("FRE", "故障录波装置"),
    CCS("CCS", "消弧线圈装置"),
    MUT("MUT", "合并单元装置"),
    ITU("ITU", "智能终端装置"),
    IMU("IMU", "合智一体装置/采集执行单元"),
    SCS("SCS", "同步时钟装置"),
    EMT("EMT", "电能计量采集装置"),
    PMU("PMU", "同步相量测量装置"),
    TCE("TCE", "站内通信装置"),
    ODF("ODF", "光纤配线架"),
    TSC("TSC", "交换机"),
    TM("TM", "端子"),
    BUT("BUT", "板卡"),
    MCB("MCB", "微型断路器"),
    LK("LK", "压板"),
    SSW("SSW", "转换开关"),
    FU("FU", "熔断器"),
    IL("IL", "指示灯"),
    RE("RE", "继电器"),
    CONT("CONT", "接触器"),
    PM("PM", "电源模块"),
    PRT("PRT", "打印机"),
    TRS("TRS", "变送器"),
    TRF("TRF", "变压器"),
    SEN("SEN", "传感器"),
    MD("MD", "测量表计"),
    MIT("MIT", "电度表"),
    PT("PT", "电压互感器"),
    CT("CT", "电流互感器"),
    UPS("UPS", "不间断电源"),
    SEV("SEV", "服务器"),
    WS("WS", "工作站"),
    PC("PC", "计算机"),
    SFP("SFP", "光模块"),
    LA("LA", "防雷器"),
    AEL("AEL", "五防锁"),
    PS("PS", "电源插座"),
    FSB("FSB", "储纤盒"),
    PCT("PCT", "协议转换器"),
    OLTCC("OLTCC", "有载调压控制器"),
    R("R", "电阻"),
    D("D", "二极管"),
    C("C", "电容"),
    L("L", "电感"),
    T("T", "晶闸管"),
    Other("Other", "其他");

    public final String deviceClass;
    public final String desc;

    DeviceEnum(String deviceClass, String desc) {
        this.deviceClass = deviceClass;
        this.desc = desc;
    }

    /**
     * 【描述】: 根据设备的class获取设备类型描述
     *
     * @param deviceClass deviceClass
     * @return {@link String}
     * @author LiChang
     * @since 2025-9-18 10:24
     */
    public static String getDeviceClassDesc(String deviceClass) {
        if (StrUtil.isNotEmpty(deviceClass)) {
            for (DeviceEnum enums : DeviceEnum.values()) {
                if (deviceClass.equals(enums.deviceClass)) {
                    return enums.desc;
                }
            }
        }
        return "未知类型";
    }

}
